<?php

class Lancamento implements IObject {

    public $tMysqli;
    private $IDDebito;
    private $IDFinanceiro;
    private $FoValor;
    private $EnStatus;
    private $EnTipoPagamento;
    private $DtData;
    private $Confirmacao;

    public function __construct($ArReleaseData, &$tMysqli) {
        $this->IDDebito = $ArReleaseData['IDDebitos'];
        $this->IDFinanceiro = $ArReleaseData['IDFinanceiro'];
        $this->FoValor = $ArReleaseData['FoValor'];
        $this->EnStatus = $ArReleaseData['EnStatus'];
        $this->EnTipoPagamento = $ArReleaseData['EnTipoPagamento'];
        $this->DtData = $ArReleaseData['DtData'];
        $this->tMysqli = $tMysqli;
    }

    public function isBill() {
        return $this->EnTipoPagamento == 'BOLETO';
    }

    public function isCreditCard() {
        return $this->EnTipoPagamento == 'CARTAO';
    }

    public function getPeriod() {
        $ArSplitDate = explode('-', $this->DtData);
        return $ArSplitDate[0] . '-' . $ArSplitDate[1];
    }

    public function isDelayed() {
        $ArDateDiff = dateDiff($this->DtData, today('BD'));
        return $this->isRelease() && empty($this->Confirmacao) && $ArDateDiff['day'] > ATRASO;
    }

    public function isRelease() {
        return $this->EnStatus == 'LANCADO';
    }

    public function isConfirmed() {
        return !empty($this->Confirmacao);
    }

    public function getIDDebito() {
        return $this->IDDebito;
    }

    public function setIDDebito($IDDebito) {
        $this->IDDebito = $IDDebito;
    }

    public function getIDFinanceiro() {
        return $this->IDFinanceiro;
    }

    public function setIDFinanceiro($IDFinanceiro) {
        $this->IDFinanceiro = $IDFinanceiro;
    }

    public function getFoValor() {
        return $this->FoValor;
    }

    public function setFoValor($FoValor) {
        $this->FoValor = $FoValor;
    }

    public function getEnStatus() {
        return $this->EnStatus;
    }

    public function setEnStatus($EnStatus) {
        $this->EnStatus = $EnStatus;
    }

    public function getEnTipoPagamento() {
        return $this->EnTipoPagamento;
    }

    public function setEnTipoPagamento($EnTipoPagamento) {
        $this->EnTipoPagamento = $EnTipoPagamento;
    }

    public function getDtData() {
        return $this->DtData;
    }

    public function setDtData($DtData) {
        $this->DtData = $DtData;
    }

    public function getConfirmacao() {
        return $this->Confirmacao;
    }

    public function setConfirmacao($Confirmacao) {
        $this->Confirmacao = $Confirmacao;
    }

    public function equals(IObject $Object) {

    }
}

?>
